﻿namespace Shell.PocoDot
{
    /// <summary>
    /// 表示一个数据上下文的工厂
    /// </summary>
    public interface IDataContextFactory
    {
        /// <summary>
        /// 创建特定类型的数据上下文
        /// </summary>
        /// <typeparam name="TPocoDot">特定的 PocoDot 的类型</typeparam>
        /// <returns>特定类型的数据上下文</returns>
        /// <exception cref="System.InvalidOperationException">不存在任何已注册的配置信息与此特定的 PocoDot 对应</exception>
        IDataContext<TPocoDot> Create<TPocoDot>() where TPocoDot : PocoDotBase;
    }
}
